home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / pcboard / msgtag11.zip / READ.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-01-30  |  4KB  |  246 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     String   STRING001
  20.     String   STRING002
  21.     String   STRING003
  22.     String   STRING004
  23.     String   STRING005
  24.     String   STRING006
  25.     Int      INT001
  26.     Int      INT002
  27.     Int      INT003
  28.     Int      INT004
  29.     BigStr   BIGSTR001
  30.     BigStr   BIGSTR002
  31.     BigStr   BIGSTR003
  32.  
  33. ;------------------------------------------------------------------------------
  34.  
  35.     INT001 = TokCount()
  36.     If (INT001) Then
  37.         STRING003 = ReadLine(PCBDat(), 204)
  38.         STRING003 = FileInf(STRING003, 6) + ":" + FileInf(STRING003, 7)
  39.         STRING002 = STRING003 + "mtg" + String(CurConf()) + ".lst"
  40.         STRING003 = ""
  41.         For INT002 = 1 To INT001
  42.             STRING003 = STRING003 + Upper(GetToken()) + ";"
  43.         Next
  44.         If (InStr(STRING003, "TAG")) Goto LABEL001
  45.         KbdStuff "R;" + STRING003 + Chr(13)
  46.         Goto LABEL006
  47.         Goto LABEL002
  48.         :LABEL001
  49.     Else
  50.         :LABEL002
  51.         If (Exist(PPEPath() + "read")) DispFile PPEPath() + "read", 4 + 1
  52.         Print "@X0BYou are currently in Conference: @X0A@CONFNAME@ @X07[@X0F@CONFNUM@@X07]"
  53.         Newline
  54.         If (Exist(STRING002)) Then
  55.             If (FileInf(STRING002, 4) > 0) Then
  56.                 BIGSTR002 = ""
  57.                 STRING003 = String(LoMsgNum()) + "-" + String(HiMsgNum())
  58.                 STRING001 = "@X02[@X0FH@X02]elp,@X02(@X0F" + STRING003 + "@X02),@X02(@X0FTAG@X02)=@X03@X0BTagged @X03Msgs, @X0EEnter your message command"
  59.                 InputStr STRING001, BIGSTR002, 14, 250, Mask_Ascii(), 8 + 256
  60.                 If (BIGSTR002 == "") Goto LABEL006
  61.                 If (BIGSTR002 == "TAG") Goto LABEL004
  62.                 Goto LABEL003
  63.             Endif
  64.             Delete STRING002
  65.         Endif
  66.         :LABEL003
  67.         KbdStuff "R " + Chr(13)
  68.         Goto LABEL006
  69.     Endif
  70.     :LABEL004
  71.     Gosub LABEL007
  72.     Tokenize BIGSTR002
  73.     INT003 = TokCount()
  74.     If (INT003 > 20) Then
  75.         Gosub LABEL008
  76.         STRING003 = ""
  77.         STRING001 = "       @X0BChoose set number to read @X0E(Enter=quit)@X07"
  78.         InputStr STRING001, STRING003, 14, 2, Mask_Num(), 256 + 4 + 2
  79.         If (STRING003 <> "") Then
  80.             Tokenize BIGSTR003
  81.             For INT002 = 1 To INT004
  82.                 STRING004 = GetToken()
  83.                 If (INT002 == ToInt(STRING003)) Then
  84.                     STRING005 = Mid(STRING004, 1, InStr(STRING004, ",") - 1)
  85.                     STRING006 = Mid(STRING004, InStr(STRING004, ",") + 1, Len(STRING004) - InStr(STRING004, ","))
  86.                     BIGSTR002 = Mid(BIGSTR002, InStr(BIGSTR002, STRING005), InStr(BIGSTR002, STRING006) - InStr(BIGSTR002, STRING005) + Len(STRING006))
  87.                     Break
  88.                 Endif
  89.             Next
  90.             Goto LABEL005
  91.         Endif
  92.         BIGSTR002 = ""
  93.     Endif
  94.     :LABEL005
  95.     KbdStuff Chr(13) + "R;" + BIGSTR002 + Chr(13)
  96.     End
  97.     If (BIGSTR002 <> "") KbdStuff "R;" + BIGSTR002
  98.     :LABEL006
  99.     End
  100.     :LABEL007
  101.     FOpen 1, STRING002, 0, 0
  102.     FRead 1, BIGSTR002, FileInf(STRING002, 4)
  103.     FClose 1
  104.     Return
  105.     :LABEL008
  106.     PrintLn 
  107.     PrintLn "@X0E┌──────────────────────────────────────────────────────────────┐"
  108.     PrintLn "│@X0BDue to a limitation of PCBoard, only 20 Message numbers can be@X0E│"
  109.     PrintLn "│@X0Bstacked to read at one time.  Pick the @X0DSET NUMBER@X0B of tagged   @X0E│"
  110.     PrintLn "│@X0Bmessages you wish to read.                                    @X0E│"
  111.     PrintLn "@X0E└──────────────────────────────────────────────────────────────┘"
  112.     PrintLn 
  113.     PrintLn "@X0FSet #  @X0CTagged Message Numbers@X07"
  114.     PrintLn "@X0A─────  ────────────────────────────────────────────────────────"
  115.     INT004 = 1
  116.     Print Space(3 - Len(String(INT004))), "@X0F", INT004, Space(4)
  117.     INT002 = 0
  118.     BIGSTR003 = ""
  119.     BIGSTR001 = BIGSTR002
  120.     Gosub LABEL009
  121.     Print "@X02", STRING003, " "
  122.     BIGSTR003 = STRING003 + ","
  123.     Inc INT002
  124.     While (1) Do
  125.         Select Case (INT002)
  126.             Case 20
  127.                 BIGSTR003 = BIGSTR003 + STRING003 + ";"
  128.                 INT002 = 0
  129.                 PrintLn 
  130.                 PrintLn 
  131.                 Gosub LABEL009
  132.                 If (STRING003 == "") Then
  133.                     BIGSTR003 = BIGSTR003 + STRING004 + ";"
  134.                     Break
  135.                 Endif
  136.                 Inc INT004
  137.                 Print Space(3 - Len(String(INT004))), "@X0F", INT004, Space(4)
  138.                 Print "@X02", STRING003, " "
  139.                 BIGSTR003 = BIGSTR003 + STRING003 + ","
  140.                 Inc INT002
  141.                 Continue
  142.             Case 10
  143.                 PrintLn 
  144.                 Print Space(7)
  145.         End Select
  146.         Gosub LABEL009
  147.         If (STRING003 == "") Then
  148.             BIGSTR003 = BIGSTR003 + STRING004 + ";"
  149.             Newlines 2
  150.             Break
  151.         Endif
  152.         Print "@X02", STRING003, " "
  153.         Inc INT002
  154.         STRING004 = STRING003
  155.     EndWhile
  156.     Return
  157.     :LABEL009
  158.     STRING003 = Mid(BIGSTR001, 1, InStr(BIGSTR001, ";") - 1)
  159.     BIGSTR001 = Mid(BIGSTR001, InStr(BIGSTR001, ";") + 1, Len(BIGSTR001) - InStr(BIGSTR001, ";"))
  160.     Return
  161.  
  162. ;------------------------------------------------------------------------------
  163. ;
  164. ; Usage report (before postprocessing)
  165. ;
  166. ; ■ Statements used :
  167. ;
  168. ;    2       End
  169. ;    30      Goto 
  170. ;    34      Let 
  171. ;    7       Print 
  172. ;    12      PrintLn 
  173. ;    18      If 
  174. ;    1       DispFile 
  175. ;    1       FOpen 
  176. ;    1       FClose 
  177. ;    1       Delete 
  178. ;    2       InputStr 
  179. ;    5       Gosub 
  180. ;    3       Return
  181. ;    4       Inc 
  182. ;    1       Newline
  183. ;    1       Newlines 
  184. ;    2       Tokenize 
  185. ;    4       KbdStuff 
  186. ;    1       FRead 
  187. ;
  188. ;
  189. ; ■ Functions used :
  190. ;
  191. ;    38      +
  192. ;    7       -
  193. ;    7       ==
  194. ;    2       <>
  195. ;    2       <
  196. ;    2       <=
  197. ;    2       >
  198. ;    4       >=
  199. ;    14      !
  200. ;    4       &&
  201. ;    2       ||
  202. ;    5       Len(
  203. ;    1       Upper()
  204. ;    5       Mid()
  205. ;    5       Space()
  206. ;    4       Chr()
  207. ;    10      InStr()
  208. ;    5       String()
  209. ;    1       Mask_Num()
  210. ;    1       Mask_Ascii()
  211. ;    1       CurConf()
  212. ;    1       PCBDat()
  213. ;    2       PPEPath()
  214. ;    1       ReadLine()
  215. ;    2       GetToken()
  216. ;    2       Exist()
  217. ;    4       FileInf()
  218. ;    2       TokCount()
  219. ;    1       ToInt()
  220. ;    1       LoMsgNum()
  221. ;    1       HiMsgNum()
  222. ;
  223. ;------------------------------------------------------------------------------
  224. ;
  225. ; Analysis flags : d
  226. ;
  227. ; d - Access PCBOARD.DAT ■ 2
  228. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  229. ;     for many PPE so they can find various informations on the system
  230. ;     (system paths, max number of lines in messages, ...) but it may also
  231. ;     be a way to gather vital informations.
  232. ;     ■ Search for : PCBDAT()
  233. ;
  234. ;------------------------------------------------------------------------------
  235. ;
  236. ; Postprocessing report
  237. ;
  238. ;    2       For/Next
  239. ;    1       While/EndWhile
  240. ;    8       If/Then or If/Then/Else
  241. ;    1       Select Case
  242. ;
  243. ;------------------------------------------------------------------------------
  244. ;                 AEGiS Corp - Break the routines, code against the machines!
  245. ;------------------------------------------------------------------------------
  246.